// RUN: llvm-mc -triple x86_64 --show-encoding %s | FileCheck %s

// CHECK: vpdpwsud %ymm4, %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x16,0xd2,0xe4]
          vpdpwsud %ymm4, %ymm13, %ymm12

// CHECK: vpdpwsud %xmm4, %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x12,0xd2,0xe4]
          vpdpwsud %xmm4, %xmm13, %xmm12

// CHECK: vpdpwsud  268435456(%rbp,%r14,8), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x22,0x16,0xd2,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwsud  268435456(%rbp,%r14,8), %ymm13, %ymm12

// CHECK: vpdpwsud  291(%r8,%rax,4), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x42,0x16,0xd2,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwsud  291(%r8,%rax,4), %ymm13, %ymm12

// CHECK: vpdpwsud  (%rip), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x16,0xd2,0x25,0x00,0x00,0x00,0x00]
          vpdpwsud  (%rip), %ymm13, %ymm12

// CHECK: vpdpwsud  -1024(,%rbp,2), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x16,0xd2,0x24,0x6d,0x00,0xfc,0xff,0xff]
          vpdpwsud  -1024(,%rbp,2), %ymm13, %ymm12

// CHECK: vpdpwsud  4064(%rcx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x16,0xd2,0xa1,0xe0,0x0f,0x00,0x00]
          vpdpwsud  4064(%rcx), %ymm13, %ymm12

// CHECK: vpdpwsud  -4096(%rdx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x16,0xd2,0xa2,0x00,0xf0,0xff,0xff]
          vpdpwsud  -4096(%rdx), %ymm13, %ymm12

// CHECK: vpdpwsud  268435456(%rbp,%r14,8), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x22,0x12,0xd2,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwsud  268435456(%rbp,%r14,8), %xmm13, %xmm12

// CHECK: vpdpwsud  291(%r8,%rax,4), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x42,0x12,0xd2,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwsud  291(%r8,%rax,4), %xmm13, %xmm12

// CHECK: vpdpwsud  (%rip), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x12,0xd2,0x25,0x00,0x00,0x00,0x00]
          vpdpwsud  (%rip), %xmm13, %xmm12

// CHECK: vpdpwsud  -512(,%rbp,2), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x12,0xd2,0x24,0x6d,0x00,0xfe,0xff,0xff]
          vpdpwsud  -512(,%rbp,2), %xmm13, %xmm12

// CHECK: vpdpwsud  2032(%rcx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x12,0xd2,0xa1,0xf0,0x07,0x00,0x00]
          vpdpwsud  2032(%rcx), %xmm13, %xmm12

// CHECK: vpdpwsud  -2048(%rdx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x12,0xd2,0xa2,0x00,0xf8,0xff,0xff]
          vpdpwsud  -2048(%rdx), %xmm13, %xmm12

// CHECK: vpdpwsuds %ymm4, %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x16,0xd3,0xe4]
          vpdpwsuds %ymm4, %ymm13, %ymm12

// CHECK: vpdpwsuds %xmm4, %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x12,0xd3,0xe4]
          vpdpwsuds %xmm4, %xmm13, %xmm12

// CHECK: vpdpwsuds  268435456(%rbp,%r14,8), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x22,0x16,0xd3,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwsuds  268435456(%rbp,%r14,8), %ymm13, %ymm12

// CHECK: vpdpwsuds  291(%r8,%rax,4), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x42,0x16,0xd3,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwsuds  291(%r8,%rax,4), %ymm13, %ymm12

// CHECK: vpdpwsuds  (%rip), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x16,0xd3,0x25,0x00,0x00,0x00,0x00]
          vpdpwsuds  (%rip), %ymm13, %ymm12

// CHECK: vpdpwsuds  -1024(,%rbp,2), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x16,0xd3,0x24,0x6d,0x00,0xfc,0xff,0xff]
          vpdpwsuds  -1024(,%rbp,2), %ymm13, %ymm12

// CHECK: vpdpwsuds  4064(%rcx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x16,0xd3,0xa1,0xe0,0x0f,0x00,0x00]
          vpdpwsuds  4064(%rcx), %ymm13, %ymm12

// CHECK: vpdpwsuds  -4096(%rdx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x16,0xd3,0xa2,0x00,0xf0,0xff,0xff]
          vpdpwsuds  -4096(%rdx), %ymm13, %ymm12

// CHECK: vpdpwsuds  268435456(%rbp,%r14,8), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x22,0x12,0xd3,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwsuds  268435456(%rbp,%r14,8), %xmm13, %xmm12

// CHECK: vpdpwsuds  291(%r8,%rax,4), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x42,0x12,0xd3,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwsuds  291(%r8,%rax,4), %xmm13, %xmm12

// CHECK: vpdpwsuds  (%rip), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x12,0xd3,0x25,0x00,0x00,0x00,0x00]
          vpdpwsuds  (%rip), %xmm13, %xmm12

// CHECK: vpdpwsuds  -512(,%rbp,2), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x12,0xd3,0x24,0x6d,0x00,0xfe,0xff,0xff]
          vpdpwsuds  -512(,%rbp,2), %xmm13, %xmm12

// CHECK: vpdpwsuds  2032(%rcx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x12,0xd3,0xa1,0xf0,0x07,0x00,0x00]
          vpdpwsuds  2032(%rcx), %xmm13, %xmm12

// CHECK: vpdpwsuds  -2048(%rdx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x12,0xd3,0xa2,0x00,0xf8,0xff,0xff]
          vpdpwsuds  -2048(%rdx), %xmm13, %xmm12

// CHECK: vpdpwusd %ymm4, %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x15,0xd2,0xe4]
          vpdpwusd %ymm4, %ymm13, %ymm12

// CHECK: vpdpwusd %xmm4, %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x11,0xd2,0xe4]
          vpdpwusd %xmm4, %xmm13, %xmm12

// CHECK: vpdpwusd  268435456(%rbp,%r14,8), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x22,0x15,0xd2,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwusd  268435456(%rbp,%r14,8), %ymm13, %ymm12

// CHECK: vpdpwusd  291(%r8,%rax,4), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x42,0x15,0xd2,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwusd  291(%r8,%rax,4), %ymm13, %ymm12

// CHECK: vpdpwusd  (%rip), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x15,0xd2,0x25,0x00,0x00,0x00,0x00]
          vpdpwusd  (%rip), %ymm13, %ymm12

// CHECK: vpdpwusd  -1024(,%rbp,2), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x15,0xd2,0x24,0x6d,0x00,0xfc,0xff,0xff]
          vpdpwusd  -1024(,%rbp,2), %ymm13, %ymm12

// CHECK: vpdpwusd  4064(%rcx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x15,0xd2,0xa1,0xe0,0x0f,0x00,0x00]
          vpdpwusd  4064(%rcx), %ymm13, %ymm12

// CHECK: vpdpwusd  -4096(%rdx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x15,0xd2,0xa2,0x00,0xf0,0xff,0xff]
          vpdpwusd  -4096(%rdx), %ymm13, %ymm12

// CHECK: vpdpwusd  268435456(%rbp,%r14,8), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x22,0x11,0xd2,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwusd  268435456(%rbp,%r14,8), %xmm13, %xmm12

// CHECK: vpdpwusd  291(%r8,%rax,4), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x42,0x11,0xd2,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwusd  291(%r8,%rax,4), %xmm13, %xmm12

// CHECK: vpdpwusd  (%rip), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x11,0xd2,0x25,0x00,0x00,0x00,0x00]
          vpdpwusd  (%rip), %xmm13, %xmm12

// CHECK: vpdpwusd  -512(,%rbp,2), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x11,0xd2,0x24,0x6d,0x00,0xfe,0xff,0xff]
          vpdpwusd  -512(,%rbp,2), %xmm13, %xmm12

// CHECK: vpdpwusd  2032(%rcx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x11,0xd2,0xa1,0xf0,0x07,0x00,0x00]
          vpdpwusd  2032(%rcx), %xmm13, %xmm12

// CHECK: vpdpwusd  -2048(%rdx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x11,0xd2,0xa2,0x00,0xf8,0xff,0xff]
          vpdpwusd  -2048(%rdx), %xmm13, %xmm12

// CHECK: vpdpwusds %ymm4, %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x15,0xd3,0xe4]
          vpdpwusds %ymm4, %ymm13, %ymm12

// CHECK: vpdpwusds %xmm4, %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x11,0xd3,0xe4]
          vpdpwusds %xmm4, %xmm13, %xmm12

// CHECK: vpdpwusds  268435456(%rbp,%r14,8), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x22,0x15,0xd3,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwusds  268435456(%rbp,%r14,8), %ymm13, %ymm12

// CHECK: vpdpwusds  291(%r8,%rax,4), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x42,0x15,0xd3,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwusds  291(%r8,%rax,4), %ymm13, %ymm12

// CHECK: vpdpwusds  (%rip), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x15,0xd3,0x25,0x00,0x00,0x00,0x00]
          vpdpwusds  (%rip), %ymm13, %ymm12

// CHECK: vpdpwusds  -1024(,%rbp,2), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x15,0xd3,0x24,0x6d,0x00,0xfc,0xff,0xff]
          vpdpwusds  -1024(,%rbp,2), %ymm13, %ymm12

// CHECK: vpdpwusds  4064(%rcx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x15,0xd3,0xa1,0xe0,0x0f,0x00,0x00]
          vpdpwusds  4064(%rcx), %ymm13, %ymm12

// CHECK: vpdpwusds  -4096(%rdx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x15,0xd3,0xa2,0x00,0xf0,0xff,0xff]
          vpdpwusds  -4096(%rdx), %ymm13, %ymm12

// CHECK: vpdpwusds  268435456(%rbp,%r14,8), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x22,0x11,0xd3,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwusds  268435456(%rbp,%r14,8), %xmm13, %xmm12

// CHECK: vpdpwusds  291(%r8,%rax,4), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x42,0x11,0xd3,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwusds  291(%r8,%rax,4), %xmm13, %xmm12

// CHECK: vpdpwusds  (%rip), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x11,0xd3,0x25,0x00,0x00,0x00,0x00]
          vpdpwusds  (%rip), %xmm13, %xmm12

// CHECK: vpdpwusds  -512(,%rbp,2), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x11,0xd3,0x24,0x6d,0x00,0xfe,0xff,0xff]
          vpdpwusds  -512(,%rbp,2), %xmm13, %xmm12

// CHECK: vpdpwusds  2032(%rcx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x11,0xd3,0xa1,0xf0,0x07,0x00,0x00]
          vpdpwusds  2032(%rcx), %xmm13, %xmm12

// CHECK: vpdpwusds  -2048(%rdx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x11,0xd3,0xa2,0x00,0xf8,0xff,0xff]
          vpdpwusds  -2048(%rdx), %xmm13, %xmm12

// CHECK: vpdpwuud %ymm4, %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x14,0xd2,0xe4]
          vpdpwuud %ymm4, %ymm13, %ymm12

// CHECK: vpdpwuud %xmm4, %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x10,0xd2,0xe4]
          vpdpwuud %xmm4, %xmm13, %xmm12

// CHECK: vpdpwuud  268435456(%rbp,%r14,8), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x22,0x14,0xd2,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwuud  268435456(%rbp,%r14,8), %ymm13, %ymm12

// CHECK: vpdpwuud  291(%r8,%rax,4), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x42,0x14,0xd2,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwuud  291(%r8,%rax,4), %ymm13, %ymm12

// CHECK: vpdpwuud  (%rip), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x14,0xd2,0x25,0x00,0x00,0x00,0x00]
          vpdpwuud  (%rip), %ymm13, %ymm12

// CHECK: vpdpwuud  -1024(,%rbp,2), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x14,0xd2,0x24,0x6d,0x00,0xfc,0xff,0xff]
          vpdpwuud  -1024(,%rbp,2), %ymm13, %ymm12

// CHECK: vpdpwuud  4064(%rcx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x14,0xd2,0xa1,0xe0,0x0f,0x00,0x00]
          vpdpwuud  4064(%rcx), %ymm13, %ymm12

// CHECK: vpdpwuud  -4096(%rdx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x14,0xd2,0xa2,0x00,0xf0,0xff,0xff]
          vpdpwuud  -4096(%rdx), %ymm13, %ymm12

// CHECK: vpdpwuud  268435456(%rbp,%r14,8), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x22,0x10,0xd2,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwuud  268435456(%rbp,%r14,8), %xmm13, %xmm12

// CHECK: vpdpwuud  291(%r8,%rax,4), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x42,0x10,0xd2,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwuud  291(%r8,%rax,4), %xmm13, %xmm12

// CHECK: vpdpwuud  (%rip), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x10,0xd2,0x25,0x00,0x00,0x00,0x00]
          vpdpwuud  (%rip), %xmm13, %xmm12

// CHECK: vpdpwuud  -512(,%rbp,2), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x10,0xd2,0x24,0x6d,0x00,0xfe,0xff,0xff]
          vpdpwuud  -512(,%rbp,2), %xmm13, %xmm12

// CHECK: vpdpwuud  2032(%rcx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x10,0xd2,0xa1,0xf0,0x07,0x00,0x00]
          vpdpwuud  2032(%rcx), %xmm13, %xmm12

// CHECK: vpdpwuud  -2048(%rdx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x10,0xd2,0xa2,0x00,0xf8,0xff,0xff]
          vpdpwuud  -2048(%rdx), %xmm13, %xmm12

// CHECK: vpdpwuuds %ymm4, %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x14,0xd3,0xe4]
          vpdpwuuds %ymm4, %ymm13, %ymm12

// CHECK: vpdpwuuds %xmm4, %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x10,0xd3,0xe4]
          vpdpwuuds %xmm4, %xmm13, %xmm12

// CHECK: vpdpwuuds  268435456(%rbp,%r14,8), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x22,0x14,0xd3,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwuuds  268435456(%rbp,%r14,8), %ymm13, %ymm12

// CHECK: vpdpwuuds  291(%r8,%rax,4), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x42,0x14,0xd3,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwuuds  291(%r8,%rax,4), %ymm13, %ymm12

// CHECK: vpdpwuuds  (%rip), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x14,0xd3,0x25,0x00,0x00,0x00,0x00]
          vpdpwuuds  (%rip), %ymm13, %ymm12

// CHECK: vpdpwuuds  -1024(,%rbp,2), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x14,0xd3,0x24,0x6d,0x00,0xfc,0xff,0xff]
          vpdpwuuds  -1024(,%rbp,2), %ymm13, %ymm12

// CHECK: vpdpwuuds  4064(%rcx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x14,0xd3,0xa1,0xe0,0x0f,0x00,0x00]
          vpdpwuuds  4064(%rcx), %ymm13, %ymm12

// CHECK: vpdpwuuds  -4096(%rdx), %ymm13, %ymm12
// CHECK: encoding: [0xc4,0x62,0x14,0xd3,0xa2,0x00,0xf0,0xff,0xff]
          vpdpwuuds  -4096(%rdx), %ymm13, %ymm12

// CHECK: vpdpwuuds  268435456(%rbp,%r14,8), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x22,0x10,0xd3,0xa4,0xf5,0x00,0x00,0x00,0x10]
          vpdpwuuds  268435456(%rbp,%r14,8), %xmm13, %xmm12

// CHECK: vpdpwuuds  291(%r8,%rax,4), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x42,0x10,0xd3,0xa4,0x80,0x23,0x01,0x00,0x00]
          vpdpwuuds  291(%r8,%rax,4), %xmm13, %xmm12

// CHECK: vpdpwuuds  (%rip), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x10,0xd3,0x25,0x00,0x00,0x00,0x00]
          vpdpwuuds  (%rip), %xmm13, %xmm12

// CHECK: vpdpwuuds  -512(,%rbp,2), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x10,0xd3,0x24,0x6d,0x00,0xfe,0xff,0xff]
          vpdpwuuds  -512(,%rbp,2), %xmm13, %xmm12

// CHECK: vpdpwuuds  2032(%rcx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x10,0xd3,0xa1,0xf0,0x07,0x00,0x00]
          vpdpwuuds  2032(%rcx), %xmm13, %xmm12

// CHECK: vpdpwuuds  -2048(%rdx), %xmm13, %xmm12
// CHECK: encoding: [0xc4,0x62,0x10,0xd3,0xa2,0x00,0xf8,0xff,0xff]
          vpdpwuuds  -2048(%rdx), %xmm13, %xmm12

